#include <bits/stdc++.h>
using namespace std;
int T,n;
long long a[200005];
long long dp[2005][2005];
bool b[15];
int pd(int op)
{
    int ans=1;
    for(int i=1;i<=op;i++)
        ans*=2;
    return ans-1;
}
int main()
{
    freopen("color.in","r",stdin);
    freopen("color.out","w",stdout);
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%lld",&a[i]);
        int ans=0;
        if(n<=15)
        {
            for(int i=0;i<=pd(n);i++)
            {
                int anss=0;
                int ii=i;
                for(int j=1;j<=n;j++)
                    b[j]=(ii&1),ii>>=1;
                for(int j=1;j<=n;j++)
                {
                    int op=j-1;
                    while(op>=1&&b[op]!=b[j]) op--;
                    if(a[op]==a[j]) anss+=a[op];
                }
                ans=max(ans,anss);
            }
            printf("%d\n",ans);
        }
        else if(n<=2000)
        {
            for(int i=1;i<=n;i++)
                for(int j=0;j<=n;j++)
                    dp[i][j]=0;
            //for(int i=2;i<=n;i++)
            //    if(a[i]==a[i-1])
            //       dp[i][0]=dp[i-1][0]+a[i];
            for(int i=2;i<=n;i++)
            {
                for(int j=0;j<=i-2;j++)
                {
                    if(a[i]==a[i-1])
                        dp[i][j]=dp[i-1][j]+a[i];
                    else
                        dp[i][j]=dp[i-1][j];
                    if(a[i]==a[j])
                        dp[i][i-1]=max(dp[i-1][j]+a[i],dp[i][i-1]);
                    else
                        dp[i][i-1]=max(dp[i-1][j],dp[i][i-1]);
                }
            }
            long long anss=0;
            for(int i=0;i<=n-1;i++)
                anss=max(dp[n][i],anss);
            printf("%lld\n",anss);
        }
        else printf("0\n");
    }
    return 0;
}